#include<iostream>
using namespace std;
#include<string>
#include<string>
 #include <sys/types.h>
       #include <sys/ipc.h>
       #include <sys/shm.h>
const int flags= IPC_CREAT | IPC_EXCL;
key_t CreatKey()
{
    key_t key=ftok("/home/zsh/linux/vscode/11-11-test2",0x13);
    // if(key<0)
    // {
    //     cerr<<"ftok: "<<strerror(errno)<<endl;
    //     return 1;
    // }
    return key;
}
int main()
{
    key_t key=CreatKey();

    int shmid=shmget(key,4096,flags|0666);
    shmctl(shmid,IPC_RMID,nullptr);
    cout<<"1111"<<endl;
    return 0;
}

void handler(int signo)
{
    cout << "我是一个进程，刚刚获取了一个信号: " << signo << endl;
    
}
int main()
{   
    //这里不是调用hander方法，这里只是设置了一个回调，让SIGINT(2)产生的时候，该方法才会被调用
    //如果不产生SIGINT(2)，该方法不会被调用！
    //ctrl + c : 本质就是给前台进程发送2号信号给目标进程，目标进程默认对2号信号的处理，是终止自己
    //今天更改了对2号信号的处理，设置了用户自定义处理方法
    for (int sig = 1; sig <= 31; sig++)
    {
        signal(sig, handler); // 设置所有的信号的处理动作，都是自定义动作
    }
    signal(2, handler); // 设置所有的信号的处理动作，都是自定义动作
    sleep(3);
    cout << "进程已经设置完了" << endl;

    sleep(3);

    while (true)
    {
        cout << "我是一个正在运行中的进程: " << getpid() << endl;
        sleep(1);
    }

    while(1)
    {
       // printf("hello bit\n");
        sleep(1);
    }
    return 0;
}

sigset_t